package com.hxf.service.menu;

import java.util.List;

import com.hxf.dto.MealMenuDto;
import com.hxf.dto.MenuDto;
import com.hxf.dto.ReturnData;
import com.hxf.exception.ServiceException;
import com.hxf.service.base.BaseService;
import com.hxf.web.vo.MenuVo;
import com.hxf.web.vo.OrderDetailVo;

/**
 * service菜单管理接口
 * @author tengyicheng
 * @version [1.0, 2013/09/23]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public interface MenuService extends BaseService {
	/**
	 * 分页查询菜单信息
	 * @param menuDto
	 * @param targetPage
	 * @param pageSize
	 * @return
	 * @throws ServiceException
	 */
	public ReturnData<MenuDto> findByMenu(MenuVo menuDto, int targetPage, int pageSize)throws ServiceException;
	
	/**
	 * 查询菜单信息
	 * @param menuDto
	 * @return
	 * @throws ServiceException
	 */
	public List<MenuDto> findByMenu(MenuDto menuDto)throws ServiceException;
	 
	/**
	 * 更新菜单和菜单权限
	 * @param menu
	 * @throws ServiceException
	 */
	public void updateMenu(MenuDto menu) throws ServiceException;
	
	/**
	 * 查询菜单树
	 * @param userId
	 * @return
	 * @throws ServiceException
	 */
	public List<MenuDto> findMenuTree(Integer userId)throws ServiceException;
	
	/**
	 * 餐厅 菜单树型
	 */
	public List<MenuDto> RestaurentfindMenuTree(Integer userId)throws ServiceException;
	
	/**
	 * 查询餐厅菜单和优惠信息
	 * @param mealMenuDto
	 * @return
	 * @throws DaoLevelException
	 */
	public List<OrderDetailVo> findByMealMenuPreferential(MealMenuDto mealMenuDto) throws ServiceException;
}
